home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
076-100
/
disk_087
/
warptext
/
notes
< prev
next >
Wrap
Text File
|
1992-05-06
|
10KB
|
236 lines
>From: billk@pnet01.CTS.COM (Bill Kelly)
Subject: Blitz speed (and faster) text routines. Source. Availiable. Now.
Date: 16 May 87 07:56:16 GMT
Organization: People-Net [pnet01], El Cajon, CA
I decided I'd post this notice now, since BlitzFonts has been receiving so
much press...
I have written some routines, which I call my 'WarpText' text routines. I was
planing to release them free to the public in about a month or so (and I still
am).
Here's what they do:
Don't confuse them with BlitzFonts. I don't have a program that modifies
Text() in order to speed up existing software. Rather, I have written a bunch
of specific Text routines that are as fast and Faster than Blitz is. (Again,
not BlitzFonts, but Blitz -- BlitzFONTS is much slower than Blitz anyway, and
is a whole different thing.)
My routines are written in assembler and are intended to be used in any
program you might be writing for which you desire text output that is so fast,
a whole screenfull (2000 characters, printing every one, not even skipping
spaces-- printing those too) just *appears* on the screen in front of your
eyes.
This would be very useful in things like Editors, for example. DME, for
instance, with text output scroll down in a file, keeping up with even the
fastest key repeat speeds... (like mine :-)
Or modem programs that have trouble emitting text at over, say, 1200 bps,
could now do 38,400 bps with no sweat...! (I happen to have a terminal that
will go that fast, so that's useful to me, if no one else...)
'WarpText' does, however (at this time) have a couple limitations...
1. Only works in it's own screen or in a SUPER_BITMAP window. I should be
finishing the routine to work inside windows fairly soon.
2. You are limited to topaz.8 or another non-proportional 8 by 8 pixel font.
3. (Not a limitation for any practical application I've thought of yet that
would have a use for WarpText, but:)
Text locations are specified in character locations-- i.e. Location 10,10
with the Text() routine would output your text at pixel-location 10,10.
WarpText would output the text beginning at 10 characters accross and
10 characters down. (Pixel location 80,80)
This should have no impact on things like editors, terminal programs, etc.
but I thought I'd mention it anyway.
This feature actually cleaned up my code a lot. I was always having to
convert the pixel-locations that Text() uses into character locations
and vice versa for my program. Now I can keep it in character locations
all the time.
I had planned (and am planning) to release all of my routines and a simple
example program in about a month and a half. You see, what I'm doing is sort
of writing a LIBRARY of text routines, though it's more of a library in the
conventional sense than an Amiga library. (Which it's not) I'm putting
together a whole set of WarpText routines, each routine being different and
sort of specializing in something.
E.g. there is the Plain_Jane routine which does no checking for linefeeds or
formfeeds or anything and only works inside a screen or SUPER_BITMAP. It just
blasts out pure [sic] text.
Then there's the one that does a little bit of checking but is still confined
to a screen or super_bitmap.
Next up is one that handles lots of things like cr's linefeeds, VT's, FF's,
etc. and skips spaces in a string for even more speed...
Now we come to the one I'm working on right now.. Like the Plain_Jane routine,
but works inside windows. After that comes the one that supports a few
'control' characters, and then the even more complicated one -- all working in
windows.
By doing this, you can choose whichever routine best suits your application,
or pick one that comes close and modify it to your heart's content...
If anyone wants a 'preview' of WarpText. (i.e. I'll send you what I've got now
so you don't have to wait a *whole* month and a half :-) send me mail and
I'll send you some stuff.
Bye the way, I'm not charging anything for these routines... not even <gasp>
shareware. (Though I would appreciate a bit of credit if you use them, say in
your source code or your program...)
Go-Amiga -- Rah! Rah! Rah! etc. (Sorry this posting was so LLOONNGG...)
--
Bill Kelly {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk
(Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!)
Bulletin: A seminar on time travel will be held two weeks ago.
==========================================================================
Date: Sun, 17 May 87 21:53:37 PDT
>From: hplabs!hp-sdd!billk@pnet01.CTS.COM (Bill Kelly)
To: amdahl!kim
Subject: Re: WarpText preview/Sure...
No problem... well, maybe one. I'm in the middle of a semi-major rewrite
right now. (In fact, WarpText.asm is being dumped to the printer even as I
type so I can glare and frown at the whole thing at once instead of only being
able to see 50 lines at a given time. :-)
I found a way to make the routines faster and more versitle (sp?) at the same
time...! The 'plain_jane' routines will now allow you to specify a 'window'
to type the text into.
For instance if you set: x1=35 y1=11 x2=45 y2=15
and have the routine print:
'This is a test, nothing can go wrong... go wrong... go wrong...'
It will come out:
THE SCREEN
+-------------------------------------------------------+
+ +
+ +
+ +
+ +
+ +
+ +-------+ +
+ +This is+ +
+ +a test,+ +
+ +nothing+ +
+ +can go + +
+ +wrong..+ +
+ +-------+ +
+ +
+ +
+ +
+ +
+-------------------------------------------------------+
..in a little window like that, the minimum edge of which is 35 characters
out and 11 characters down. The maximum edge is 45 characters out and 15
characters down.
Actually, I may do it x1,y1 dx2,dy2 where dx2 and dy2 are offsets from
x1,y1 instead of 0,0. This would make it:
x1=35 y1=11 dx2=10 dy2=4 instead of:
x1=35 y1=11 x2=45 y2=15
The routines used to be tailored to a specific screensize:
640x200
Now you can make the routines think they're in any size screen you want to by
setting those variables.
The funny thing was, I found a way to make it *faster* the new way than the
old way. (Unless you are printing less than three characters, then it is
longer than the old way. :-)
WHAT I'M GETTING AT WITH ALL OF THIS IS THAT...
It's probably going to take me 'till next weekend to finish and test these.
(Not that I'm a slow programmer, but I have finals to study for :-( )
So, if you wouldn't mind waiting a week, I'd be more than happy to mail the
routines to you.
Thanks,
--
Bill Kelly {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk
(Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!)
"This is *another* FINE MESS you've gotten us into, Stanley!"
==========================================================================
Date: Tue, 26 May 87 07:26:43 PDT
>From: ames!scubed!pnet01!billk (Bill Kelly)
To: doc@j.cc.purdue.edu
Subject: Sorry- not quite yet. (WarpText)
Sheesh, what a lof of pathnames to type in! :-) This should be going to
everyone who sent me mail about my text routines.
THE GOOD NEWS:
Everything's written... and it looks really nice. I think it will be very
easy to use. You are limited to a font that is 8 pixels wide, however the
font can be any number of lines high. You can define your own 'window' you
want the routine to write into and it will stay there. You don't even have to
open a normal intuition window to do this. You just need a pointer to a
bitplane. You can now specify which bitplane to write into, though at the
momont the routine only writes into one bitplane at a time. The routine
doesn't print spaces for speed purposes. (If you don't like this you can just
remove two lines of code) At the moment it handles CR, LF, and FF.
THE BAD/INDIFFERENT NEWS:
The routine is untested. That's why I'm not sending it. I am going to make
an attempt at debugging it tonight.
While it linefeeds and CR's right, it does not clear the screen on a FF -- it
just points itself at the top of the 'window' you defined. Also, it does no
scrolling as of yet. When it gets to the bottom of it's 'window' it just
wraps around on the last line.
This stuff was omitted because I had no time... I will add it later. The
code is clear (I think so, anyway) so you should be able to add/subtract from
it quite easily.
So, I will try to debug it tonight, if that's possible. (It may be, with the
help of Forth) Anyway, it's *written* and coming soon...
Bill Kelly.
BTW, rather than typing in all these pathnames again, I will probably just
post the pre-release to comp.amiga.sources. If anyone needs it sent directly
to them. i.e. can't get to comp.amiga.sources, please let me know!
--
Bill Kelly {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk
(Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!)
Commodore's marketing strategy: "Ready...FIRE! ...aim???"